在家庭和公司網(wǎng)絡(luò)中使用的客戶端是請求訪問服務(wù)器提供的服務(wù)的任何計算機硬件或軟件設(shè)備。客戶端通常被視為 客戶端-服務(wù)器 架構(gòu)中的請求程序或用戶??蛻舳私K端用戶設(shè)備通常包括臺式電腦、筆記本電腦和智能手機。在計算機網(wǎng)絡(luò)中,客戶端-服務(wù)器模型中的客戶端是從服務(wù)器請求服務(wù)或資源的對象。服務(wù)器可以位于內(nèi)部或外部。
客戶端如何與服務(wù)器交互?
在客戶端-服務(wù)器架構(gòu)中,客戶端通過請求客戶端無法提供的數(shù)據(jù)或資源與服務(wù)器交互??蛻舳撕头?wù)器可以位于不同的區(qū)域并通過網(wǎng)絡(luò)連接。它們也可以位于同一臺機器上并通過進程間通信進行連接。
分布式應(yīng)用程序框架在服務(wù)器和客戶端之間劃分任務(wù)??梢杂煽蛻舳送瓿傻娜蝿?wù)通常稱為客戶端,而由服務(wù)器完成的任務(wù)稱為服務(wù)器端。服務(wù)器通常提供資源,例如文件、數(shù)據(jù)、互聯(lián)網(wǎng)訪問、外部存儲或處理能力。服務(wù)器放置一個或多個程序負責將這些服務(wù)分發(fā)給請求的客戶端。
客戶端和服務(wù)器以由通信協(xié)議定義的請求-響應(yīng)消息傳遞模式進行通信,例如傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議 ( TCP/IP )。該協(xié)議定義了所使用的語言和對話模式。例如,TCP 保持客戶端和服務(wù)器之間的連接,直到消息交換結(jié)束。TCP 還確定如何分發(fā)應(yīng)用程序數(shù)據(jù)、傳輸和接收數(shù)據(jù)包,以及管理任何丟棄的數(shù)據(jù)包。如果服務(wù)器一次接收到大量請求,則這些請求會在基于優(yōu)先級的調(diào)度系統(tǒng)中進行組織。使用客戶端訪問控制工具,用戶可以管理對服務(wù)器的訪問。
客戶端與服務(wù)器端
客戶端是發(fā)生在用戶端的動作或操作,而服務(wù)器端是指發(fā)生在服務(wù)器上的動作或操作。例如,JavaScript 腳本是客戶端的,因為它們由瀏覽器(即客戶端)執(zhí)行。通用網(wǎng)關(guān)接口腳本是服務(wù)器端的,因為它們在服務(wù)器上運行。
例如,服務(wù)器可以是應(yīng)用服務(wù)器、單獨的計算機、數(shù)據(jù)庫服務(wù)器或Web 服務(wù)器。當程序或設(shè)備沒有資源來完成操作時,它將充當客戶端,向服務(wù)器發(fā)出請求,該操作將發(fā)生在服務(wù)器端。
客戶類型
下面檢查四種定義不同類型客戶端的方法:
- 厚客戶端。胖客戶端提供大部分資源和數(shù)據(jù)處理。這些客戶端僅輕微依賴服務(wù)器;相反,它們在客戶端執(zhí)行大多數(shù)操作。
- 瘦客戶端。這些輕量級客戶端嚴重依賴服務(wù)器獲取資源并執(zhí)行大部分數(shù)據(jù)處理。
- 混合客戶端?;旌峡蛻舳耸鞘菘蛻舳撕团挚蛻舳说慕M合。這種類型的客戶端在本地處理數(shù)據(jù),但依賴于服務(wù)器來存儲持久數(shù)據(jù)。
- 零客戶端。零客戶端比瘦客戶端更纖薄且更具成本效益。這些客戶端設(shè)備不需要配置,也沒有存儲任何內(nèi)容。它們還比胖客戶端或瘦客戶端使用更少的電力。
客戶端-服務(wù)器示例
客戶端-服務(wù)器關(guān)系的示例包括 Web、文件和郵件服務(wù)器。Web 瀏覽器本質(zhì)上是一個客戶端,它從整個 Web 的服務(wù)器請求頁面。瀏覽器是發(fā)送請求的客戶端,而另一個位置的服務(wù)器返回超文本標記語言 (HTML) 文件。處理請求并發(fā)回 HTML 文件的計算機是服務(wù)器。
文件服務(wù)器是負責存儲和管理數(shù)據(jù)文件的計算機,使用戶能夠通過網(wǎng)絡(luò)共享信息而無需物理傳輸文件。文件服務(wù)器的示例包括網(wǎng)絡(luò)附加存儲設(shè)備或可以托管共享文件的單獨計算機。
文件傳輸協(xié)議是一種客戶端-服務(wù)器網(wǎng)絡(luò)協(xié)議,用于通過 TCP/IP 連接在計算機之間傳輸文件??蛻舳?服務(wù)器協(xié)議依賴于客戶端和服務(wù)器之間的兩個通信通道——一個用于控制對話的命令通道和一個用于傳輸文件內(nèi)容的數(shù)據(jù)通道。